<!DOCTYPE html>
<html lang="en">
<head>
		<title>SKiDL &mdash; Articles by Dave Vandenbout</title>
		<meta charset="utf-8" />
		<link rel="profile" href="http://gmpg.org/xfn/11" />
		<link rel="stylesheet" type="text/css" href="/skidl/theme/css/style.css" />
		<link rel='stylesheet' id='oswald-css'  href='http://fonts.googleapis.com/css?family=Oswald&#038;ver=3.3.2' type='text/css' media='all' />
		<link rel="preconnect" href="https://fonts.googleapis.com">
		<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
		<link href="https://fonts.googleapis.com/css2?family=Oswald&family=Roboto+Condensed&display=swap" rel="stylesheet">
		<!-- <style type="text/css">
			body.custom-background { background-color: #f5f5f5; }
		</style> -->
		<link rel="alternate" type="application/atom+xml"
			title="SKiDL — Flux Atom"
			href="/skidl/" />
		<!--[if lte IE 8]><script src="/skidl/theme/js/html5shiv.js"></script><![endif]-->
</head>

<body class="home blog custom-background " >
	<div id="container">
		<div id="header">
				<h1 id="site-title"><a href="/skidl"><img src="/skidl/images/banner.png" width="100%"></a></h1>
				<!-- <h1 id="site-title"><a href="/skidl">SKiDL</a></h1> -->
		</div><!-- /#banner -->

		<div id="menu">
			<div class="menu-navigation-container">
				<ul id="menu-navigation" class="menu">
						<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://github.com/devbisme/skidl">Github</a></li>
						<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://github.com/devbisme/skidl/discussions">Forum</a></li>
						<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/skidl/category/posts.html">Blog</a></li>
						<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/skidl/api/html/index.html">API</a></li>
						<li class="menu-item menu-item-type-post_type menu-item-object-page"><a href="/skidl/">Home</a></li>

				</ul>
			</div> <!--/#menu-navigation-container-->
		</div><!-- /#menu -->

		<div class="page-title">
	<h2>Posted by <span>Dave Vandenbout</span> &hellip;</h2>
		</div>

		<div id="contents">
<div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/package-decorator-2020-05-27.html">Wed 27 May 2020</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/package-decorator-2020-05-27.html" title="Permalink to Good Things Come In Packages!" rel="bookmark">Good Things Come In Packages!</a>
		</h2>
		<div class="entry-content">
			<p>Up to now, SKiDL supported hierarchy by applying the <code>@subcircuit</code> decorator to a Python function:</p>
<div class="highlight"><pre><span></span><code><span class="nd">@subcircuit</span>
<span class="k">def</span> <span class="nf">analog_average</span><span class="p">(</span><span class="n">in1</span><span class="p">,</span> <span class="n">in2</span><span class="p">,</span> <span class="n">avg</span><span class="p">):</span>
<span class="w">    </span><span class="sd">&quot;&quot;&quot;Output the average of the two inputs.&quot;&quot;&quot;</span>

    <span class="c1"># Create two 1K resistors.</span>
    <span class="n">r1</span><span class="p">,</span> <span class="n">r2</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">Part</span><span class="p">(</span><span class="s1">&#39;Device&#39;</span><span class="p">,</span> <span class="s1">&#39;R&#39;</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="s1">&#39;1K&#39;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="n">TEMPLATE</span><span class="p">)</span>

    <span class="c1"># Each input connects thru a resistor to the …</span></code></pre></div>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/skidl-forum-2020-05-20.html">Wed 20 May 2020</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/skidl-forum-2020-05-20.html" title="Permalink to New SKiDL Forum!" rel="bookmark">New SKiDL Forum!</a>
		</h2>
		<div class="entry-content">
			<p><strong>FYI: The forum has <a href="https://github.com/devbisme/skidl/discussions">moved</a>.</strong></p>
<p>I created a <a href="https://github.com/devbisme/skidl/discussions">Github Discussions forum for SKiDL</a>.
There, you can ask questions about SKiDL and post about projects you're doing with it.
This will probably be a more convenient channel for such things rather
than opening issues on the SKiDL GitHub repo.</p>
<p>Give it …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/Release_0_0_30-2020-05-16.html">Sat 16 May 2020</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/Release_0_0_30-2020-05-16.html" title="Permalink to Version 0.0.30 Released!" rel="bookmark">Version 0.0.30 Released!</a>
		</h2>
		<div class="entry-content">
			<p>I'm releasing version 0.0.30 of SKiDL today!
It has some new features I'm excited about:</p>
<ul>
<li>A new <code>@package</code> decorator to make subcircuits act like <code>Parts</code>.</li>
<li>A new <code>tee()</code> function for creating T-junctions in networks.</li>
<li>Custom ERCs can now be added using the new <code>erc_assert()</code> function.</li>
<li>Substring matching in …</li></ul>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/xspice-capability-2020-01-30.html">Thu 30 January 2020</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/xspice-capability-2020-01-30.html" title="Permalink to xspice capability" rel="bookmark">xspice capability</a>
		</h2>
		<div class="entry-content">
			<p><a href="https://github.com/devbisme/skidl/issues/76">Somebody asked about using XSPICE components</a> in SPICE simulations with SKiDL.
That wasn't possible since <a href="https://pyspice.fabrice-salvaire.fr/">PySpice</a> didn't really support these when I <a href="https://devbisme.github.io/skidl/docs/_site/blog/spice-simulation">built the interface</a>.
So I added XSPICE parts to the <a href="https://github.com/devbisme/skidl/blob/master/examples/spice-sim-intro/spice-sim-intro.ipynb">SKiDL SPICE interface</a> and released it as <a href="https://pypi.org/project/skidl/">SKiDL 0.0.29</a>.</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/Release_0_0_28-2019-12-17.html">Tue 17 December 2019</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/Release_0_0_28-2019-12-17.html" title="Permalink to Version 0.0.28 Released!" rel="bookmark">Version 0.0.28 Released!</a>
		</h2>
		<div class="entry-content">
			<p>Well, that didn't last long.</p>
<p>I released version 0.0.27 of SKiDL yesterday, but I didn't like
having the <code>zyc</code> utility bundled in there because that pulls in <code>wxpython</code>
as a requirement.
That's likely to cause problems for some people when they try to install
it with <code>pip</code>.</p>
<p>So …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/Release_0_0_27-2019-12-16.html">Mon 16 December 2019</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/Release_0_0_27-2019-12-16.html" title="Permalink to Version 0.0.27 Released!" rel="bookmark">Version 0.0.27 Released!</a>
		</h2>
		<div class="entry-content">
			<p>It's been almost eleven months since I released a new version of SKiDL
(not counting updates to the Github repo).
So here's a new one: version 0.0.27.
You can install it using pip just like all the other releases.</p>
<p>Check out the changes in this version <a href="https://github.com/devbisme/skidl/blob/master/HISTORY.rst">here</a>.
I …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/worst-part-of-skidl-2019-09-30.html">Mon 30 September 2019</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/worst-part-of-skidl-2019-09-30.html" title="Permalink to The Worst Part of SKiDL" rel="bookmark">The Worst Part of SKiDL</a>
		</h2>
		<div class="entry-content">
			<p>I created SKiDL to replace the manual tedium of drawing schematics with the
advantages of modern programming languages: iteration, abstraction, hierarchy,
and modularization.
But one thing always stood out as a problem:</p>
<p>Parts.</p>
<p>Here's a snippet of SKiDL code to show what I mean.
It instantiates a PIC10 microcontroller and …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/skidl-kicon-2019-2019-06-12.html">Wed 12 June 2019</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/skidl-kicon-2019-2019-06-12.html" title="Permalink to SKiDL at KiCon 2019" rel="bookmark">SKiDL at KiCon 2019</a>
		</h2>
		<div class="entry-content">
			<p>At the recent <a href="https://kicad-kicon.com/">KiCon 2019</a>, I gave a <a href="https://www.youtube.com/watch?v=WErQYI2A36M">talk</a>
about SKiDL that's a good introduction to the language and why I created it.
It's about 27 minutes in length if you can stand it.</p>
<p>I got a lot of great feedback after my talk.
Almost everybody mentioned that they want …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/sweetening-skidl-2018-09-03.html">Mon 03 September 2018</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/sweetening-skidl-2018-09-03.html" title="Permalink to Sweetening SKiDL" rel="bookmark">Sweetening SKiDL</a>
		</h2>
		<div class="entry-content">
			<p>I've added a bit of syntactic sugar to SKiDL over the past few months:</p>
<ul>
<li><a href="#series-parallel-and-tee-network-constructors">Series, Parallel, and Tee Network Constructors</a></li>
<li><a href="#bussed-part-pins">Bussed Part Pins</a></li>
<li><a href="#accessing-part-pins-as-attributes">Accessing Part Pins as Attributes</a></li>
</ul>
<p>It doesn't change what SKiDL does, but does make it easier to do it.</p>
<h3 id="series-parallel-and-tee-network-constructors">Series, Parallel, and Tee Network Constructors</h3>
<p>Last year …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="post type-post status-publish format-standard hentry category-general" id="post">
	<div class="entry-meta">
		<span class="date"><a href="/skidl/others-use-it-too-2018-07-29.html">Sun 29 July 2018</a></span>
		/
		<span class="byline"><a href="/skidl/author/dave-vandenbout.html">Dave Vandenbout</a></span>
	</div> <!-- /#entry-meta -->
	<div class="main">
		<h2 class="entry-title">
			<a href="/skidl/others-use-it-too-2018-07-29.html" title="Permalink to Others Use It, Too!" rel="bookmark">Others Use It, Too!</a>
		</h2>
		<div class="entry-content">
			<p>It helps when other people use SKiDL; then I can coast by just showing what they've done.
Here are two examples.</p>
<h3 id="blinkenface">Blinkenface</h3>
<p><a href="https://github.com/mossmann/blinkenface">Blinkenface</a> is a version of "LED glasses"
made with a cascaded string of APA102 RGB LEDs controlled through an SPI interface:</p>
<p><img alt="Blinkenface PCB" src="images/others-use-it-too/blinkenface_pcb.png"></p>
<p>Th majority of Blinkenface is just a …</p>
		</div> <!--/#entry-content-->
	</div> <!--/#main-->
</div>  <!--/#post--><div class="navigation">
		<div class="nav-previous">
				<a href="/skidl/author/dave-vandenbout.html">
			<span class="meta-nav">&larr;</span> Newer posts</a>
		</div>
		<div class="nav-next"><a href="/skidl/author/dave-vandenbout3.html" >Older posts <span class="meta-nav">&rarr;</span></a></div>
</div>
		</div>

		<div id="footer">
			<p> </p>
		</div><!-- /#footer -->
	</div><!-- /#container -->
	<div style="display:none"></div>
</body>
</html>